var PRODUCT_CONFIG_TYPE_VALUE = "02"; // 商品配置类型值
var PC_TERMTYPE_VALUE = "1"; //终端是PC
var WX_TERMTYPE_VALUE = "2"; //终端是微信
$(function() {
	// 定义列
	var columns = [
		{
            radio : true,
            valign : 'middle',
            align : 'center'
        },
        {
            field : 'id',
            title : '商品ID',
            valign : 'middle',
            align : 'center',
            visible : false
        },
        {
            field : 'productCode',
            title : '商品编码',
            valign : 'middle',
            align : 'center'
        },
        {
            field : 'productName',
            title : '商品名称（品牌）',
            valign : 'middle',
            align : 'left'
        },
        {
			field : '#',
			title : '操作',
			valign : 'middle',
			align : 'center',
			formatter : function(value, row, index) {
				return "<a class='btn btn-info btn-xs copyProductUrl' href='javascript:void(0);' bind-data='"+row.id+"' >复制地址</a>" ;
			}
		}
    ];
			
			
	// 定义查询回调函数（查询参数在此设置）
	var queryParams = function(params) {
		var productName =  $("#productName").val(); 
		return {
			rows : params.limit,
			page : params.pageNumber, 
			productName : productName
			
		};
	};
	
	var url = rootPath + "/siteConfigItem/listProductForIndex";
	sys.initTable('productTable', {
		url : url,
		queryParams : queryParams,
		columns : columns,
		striped : true,
		clickToSelect : true,
		pagination : false,
		onClickRow : function(row,element){ 
			$(element).find('.iradio_square-green').iCheck('check');
			var termType = $('#termType').val(); 
			console.log(termType);
			var url = rootPCUrl + "/pc/product/detail?productId=" + row.id;
			if (termType == WX_TERMTYPE_VALUE) { //如果是微信
				url = rootWXUrl + "/wx/product/detail?productId=" + row.id;
			}
			$('#linkUrl').val(url);
			$("#productCode").val(row.id+"##"+row.productName+"##"+row.productImgPath);
		},
		onLoadSuccess : function(){
			initBootstrapTableCheckbox();
			
			// 复制商品标签URL
			var clipboard = new Clipboard('.copyProductUrl', {
				text : function(e) { 
					var termType = $('#termType').val(); 
					var id = $(e).attr('bind-data');
					var url = rootPCUrl + "/pc/product/detail?productId=" + id;
					if (termType == WX_TERMTYPE_VALUE) { //如果终端类型是微信
						url = rootWXUrl + "/wx/product/detail?productId=" + id;
					}
					return url;
				}
			});
			clipboard.on('success', function(e) {
				layer.msg("已复制到剪切板~",{ time : 2000});
			});

			clipboard.on('error', function(e) {
				layer.msg("复制失败~",{ icon : 2, time: 2000});
			});
		}
	});
	
	$("#btn_save").click(function() {
		$("#siteConfigItemForm").submit();
		return false;
	});
	
	sys.selectpicker({
        id : 'configType',
        url : rootPath + "/dict/listKeyMapEntites",
        param : {
            keyType : 'siteConfigType'
        },
        defaultValue : $("#tmpConfigType").val(),
        valueField : 'keyValue',
        textField : 'keyIntro'
    });
	if ($("#tmpConfigType").val() == PRODUCT_CONFIG_TYPE_VALUE) {
		$('#imageContainer').hide();
	}
	$('#configType').on('changed.bs.select', function (e){
		var value = $(this).selectpicker('val'); 
		if (value == PRODUCT_CONFIG_TYPE_VALUE) { //如果选择的是商品，则隐藏图片
			$('#imageContainer').hide(); 
		} else {
			$('#imageContainer').show();
		}
		$("#tmpConfigType").val(value);
		if (!value) {
			$("#tmpConfigType").next().find(".error").show(); 
		} else {
			$("#tmpConfigType").next().find(".error").hide(); 
		}
		$("#tmpConfigType").next().hide(); 
	})
	
	$("#siteConfigItemForm").validate({
		rules : {
			moduleId : {
				required : true
			},
			configTitle : {
				required : true,
				minlength : 3,
				maxlength : 100
			},
			tmpConfigType : {
				required : true
			},
			linkUrl : {
				required : true
			}
		},
		messages : {
			moduleId : {
				required : '请填选择所属模块 '
			},
			configTitle : {
				required : '请填写配置标题',
				minlength : '配置标题至少3个字符',
				maxlength : '配置标题至少100个字符'
			},
			tmpConfigType : {
				required : '请填写配置类型'
			},
			linkUrl : {
				required : '请填写连接(URL)'
			}
		},
		errorPlacement : function(error, element) { // 错误信息位置设置方法
			var tagName = $(element).is("select");
    		if(!tagName) {
    			error.insertAfter(element);
    		}else {
    			error.insertAfter(element.parent().next());
    		}
		},
		submitHandler : function(form) {
			var configType = $("#configType").val();
			var productCode = $("#productCode").val();
			if(configType == '02'){
				var checkedSize = $("div.checked").length;
				if(productCode == null || productCode == ''){
					if(checkedSize == 0){
						layer.alert('请选择要展示的商品');
						return false;
					}
					if(checkedSize > 1){
						layer.alert('展示商品只能选择一条');
						return false;
					}
				}
				
				var index = $("div.checked").closest("tr").attr("data-index");
				if(index){
					var row = $("#productTable").bootstrapTable("getData")[index];
					$("#productCode").val(row.id+"##"+row.productName+"##"+row.productImgPath);
				}
			}
			
			var desc = UE.getEditor('editorDesc').getContent();
	        if(desc) {
	            $("#content").val(desc);
	        }
			
			$(form).ajaxSubmit({
		       	type		: 'post',
		       	clearForm	: false,  
				resetForm	: false,  
				timeout		: 5000, 
		       	success		: function(json){ 
		       		var index = parent.layer.getFrameIndex(window.name);
		           	if (json.resultCode == '1') {
		           		parent.$('#layer_opt_status').val('1'); 
		           		parent.layer.close(index);
		           	} else { 
		           		parent.$('#layer_opt_status').val('0'); 
		           		showErr('新增失败！');
		        	}
		     	}
			}); 
		}
	});
	
	$("#btn_back").click(function() {
		var index = parent.layer.getFrameIndex(window.name);
		parent.layer.close(index);
	});
	
	$("a[id='btn_close']").each(function(){
		$(this).click(function(){
			$(this).closest("li").remove();
		});
	});
	
	/**
	 * 弹窗口查询商品
	 */
	$("#btn_product_selector").click(function(){
		$("#productTable").bootstrapTable("refresh");
		return false;
	});
	// 加载树
	loadTreeGridData();
	
	initFancyBoxImg("setConfigImg");
	
	initProductTagTable();
	
	loadBrandTreeGridData();
});



/**
 * 加载表格树数据
 */
var loadTreeGridData = function(){
	var url = rootPath + "/productCategory/listProductCategoryPage"; // 请求json数据的服务器地址
	$.ajax({
		type: 'POST',
		url: url,
		async: true,
		dataType: 'json',
		success: function(data) {
			if (data) {
				initTreeGrid(data.rows);
			}
		}
	});
}

/**
 * 初始化表格树
 * @param rows 行JSON数据集合
 */
var initTreeGrid = function(rows) {
	// prepare the data
	var source = {
		dataType : "json",
		dataFields : [ {
			name : 'id',
			type : 'number'
		}, {
			name : 'parentCategoryId',
			type : 'number'
		}, {
			name : 'categoryName',
			type : 'string'
		}, {
			name : 'status',
			type : 'number'
		} ],
		hierarchy : {
			keyDataField : {
				name : 'id'
			},
			parentDataField : {
				name : 'parentCategoryId'
			}
		},
		id : 'id',
		localData : rows
	};

	var dataAdapter = new $.jqx.dataAdapter(source);
	// create Tree Grid
	$("#treeGrid").jqxTreeGrid({
		width : '100%',
		columnsHeight : 40,
		autoRowHeight : true,
		columnsResize : true,
		altRows : true,
		source : dataAdapter,
		theme : 'office',
		sortable : false,
		columns : [
			{
				text : '分类名称',
				dataField : 'categoryName',
				width : 400,
				align : "left"
			},
			{
				text : '状态',
				dataField : 'status',
				width : 150,
				align : "left",
				cellsalign : "left",
				cellsrenderer : function(row, columnfield, value, defaulthtml, columnproperties) {
					if (value == '0') {
						return "<span class='label label-danger'>停用</span>";
					} else {
						return "<span class='label label-success'>启用</span>";
					}
				}
			},
			{
				text : '操作',
				dataField : 'id',
				align : "left",
				cellsalign : "left",
				cellsrenderer : function(row, column, value, rowData) {
					var strHtml = '';
					strHtml += "<a class='btn btn-info btn-xs btn-relation-category' bind-data='"
							+ rowData.id + "'>复制地址</a>";
					return strHtml;
				}
			} ],
		rendered : function() {
			var termType = $('#termType').val(); //获取终端类型
			// 复制地址 by solin
			var clipboard = new Clipboard('.btn-relation-category', {
				text : function(e) { 
					var id = $(e).attr('bind-data');
					var url = rootPCUrl + "/pc/product/search?categoryId=" + id;
					if (termType == WX_TERMTYPE_VALUE) { //如果终端类型是微信
						url = rootWXUrl + "/wx/product/search?categoryId=" + id;
					}
					return url;
				}
			});
			clipboard.on('success', function(e) {
				layer.msg("已复制到剪切板~",{ time : 2000});
			});

			clipboard.on('error', function(e) {
				layer.msg("复制失败~",{ icon : 2, time: 2000});
			});
			
		}
	});
}

/**
 * 加载商品标签列表
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月16日 下午5:40:11
 */
function initProductTagTable() {
	// 定义列
	var columns = [
			{
				field : 'no',
				title : '序号',
				valign : 'middle',
				align : 'left',
				formatter : function(value, row, index) {
					return index + 1;
				}
			},
			{
				field : 'tagName',
				title : '标签名称',
				valign : 'middle',
				align : 'center'
			},
			{
				title : '标签图标',
				valign : 'middle',
				align : 'center',
				formatter : function(value, row, index) {
					var imgSrc = '';
					if (null == row.tagIcon || '' == row.tagIcon || 'null' == row.tagIcon) {
						imgSrc = rootPath + "/statics/images/default.jpg";
					} else {
						imgSrc = imgRootURL + row.tagIcon;
					}
					return "<a rel='productTagImage' href='" + imgSrc + "'>" + "	<img src='" + imgSrc
							+ "' width='50px' height='60px' onerror='this.src=\"" + rootPath
							+ "/statics/images/default.jpg\"'>" + "</a>";
				}
			},
			{
				field : 'status',
				title : '状态',
				valign : 'middle',
				align : 'center',
				formatter : function(value, row, index) {
					if (value == "1") {
						return "<span class='label label-success'>启用</span>";
					} else if (value == "0") {
						return "<span class='label label-danger'>停用</span>";
					}
				}
			},
			{
				field : '#',
				title : '操作',
				valign : 'middle',
				align : 'center',
				formatter : function(value, row, index) {
					return "<a class='btn btn-info btn-xs copyProductTagUrl' href='javascript:void(0);' bind-data='"+row.id+"' >复制地址</a>" ;
				}
			} ];

	// 定义查询回调函数（查询参数在此设置）
	var queryParams = function(params) {
		return {
			rows : params.limit, // 页面大小
			page : params.pageNumber, // 页码
			status : "1"
		};
	};

	var url = rootPath + "/productTag/listProductTagPage"; // 请求json数据的服务器地址
	sys.initTable('productTagTable', {
		url : url,
		queryParams : queryParams,
		columns : columns,
		striped : true,
		clickToSelect : true,
		onLoadSuccess : function() {
			
			var termType = $('#termType').val(); //获取终端类型
			// 复制商品标签URL
			var clipboard = new Clipboard('.copyProductTagUrl', {
				text : function(e) { 
					var id = $(e).attr('bind-data');
					var url = rootPCUrl + "/pc/product/search?productTag=" + id;
					if (termType == WX_TERMTYPE_VALUE) { //如果终端类型是微信
						url = rootWXUrl + "/wx/product/search?productTag=" + id;
					}
					return url;
				}
			});
			clipboard.on('success', function(e) {
				layer.msg("已复制到剪切板~",{ time : 2000});
			});

			clipboard.on('error', function(e) {
				layer.msg("复制失败~",{ icon : 2, time: 2000});
			});
		}
	});

}

/**
 * 加载品牌表格树
 */
var loadBrandTreeGridData = function(){
	var url = rootPath + "/productBrand/listProductBrandTreeData"; // 请求json数据的服务器地址
	$.ajax({
		type: 'POST',
		url: url,
		async: true,
		dataType: 'json',
		success: function(data) {
			if (data) {
				initBrandTreeGrid(data.rows);
			}
		}
	});
}
/**
 * 初始化品牌表格树
 * @param rows 行JSON数据集合
 */
var initBrandTreeGrid = function(rows) {
	// prepare the data
	var source = {
		dataType : "json",
		dataFields : [ {
			name : 'id',
			type : 'number'
		}, {
			name : 'parentBrandCode',
			type : 'number'
		}, {
			name : 'brandNameCh',
			type : 'string'
		}, {
			name : 'status',
			type : 'number'
		} ],
		hierarchy : {
			keyDataField : {
				name : 'id'
			},
			parentDataField : {
				name : 'parentBrandCode'
			}
		},
		id : 'id',
		localData : rows
	};

	console.log(rows);
	var dataAdapter = new $.jqx.dataAdapter(source);
	// create Tree Grid
	$("#brandTreeGrid").jqxTreeGrid({
		width : '100%',
		columnsHeight : 40,
		autoRowHeight : true,
		columnsResize : true,
		altRows : true,
		source : dataAdapter,
		theme : 'office',
		sortable : false,
		columns : [
			{
				text : '品牌名称',
				dataField : 'brandNameCh',
				width : 400,
				align : "left"
			},
			{
				text : '状态',
				dataField : 'status',
				width : 150,
				align : "left",
				cellsalign : "left",
				cellsrenderer : function(row, columnfield, value, defaulthtml, columnproperties) {
					if (value == '0') {
						return "<span class='label label-danger'>停用</span>";
					} else {
						return "<span class='label label-success'>启用</span>";
					}
				}
			},
			{
				text : '操作',
				dataField : 'id',
				align : "left",
				cellsalign : "left",
				cellsrenderer : function(row, column, value, rowData) {
					var strHtml = '';
					strHtml += "<a class='btn btn-info btn-xs btn-relation-brand' bind-data='"
							+ rowData.id + "'>复制地址</a>";
					return strHtml;
				}
			} ],
		rendered : function() {
			var termType = $('#termType').val(); //获取终端类型
			// 复制地址 by solin
			var clipboard = new Clipboard('.btn-relation-brand', {
				text : function(e) { 
					var id = $(e).attr('bind-data');
					var url = rootPCUrl + "/pc/product/search?brandId=" + id;
					if (termType == WX_TERMTYPE_VALUE) { //如果终端类型是微信
						url = rootWXUrl + "/wx/product/search?brandId=" + id;
					}
					return url;
				}
			});
			clipboard.on('success', function(e) {
				layer.msg("已复制到剪切板~",{ time : 2000});
			});

			clipboard.on('error', function(e) {
				layer.msg("复制失败~",{ icon : 2, time: 2000});
			});
			
		}
	});
}

//************************************************上传图片所需的函数BEGIN********************************************************//
/**
 * 通过ajax提交图片
 */
function ajaxFileUpload(obj, tag) {
	var image_container = $(obj).parents(".image_container");
	var lis = image_container.find("li");
	if (lis.length > 1) {
		msg("只能上传一张照片");
		return false;
	}
	var id = $(obj).attr("id");
	//loading层
	var index = layer.msg('上传中...', {
	  icon: 16
	  ,shade: 0.01,
	  time: 0
	});
	$.ajaxFileUpload({
		url : rootPath + '/uploadFile/uploadOneFile',
		secureuri : false,
		fileElementId : id, // input标签id属性值
		dataType : 'json',
		success : function(data, status) {
			layer.close(index);
			if (data.code == 1) {
				image_container.next().val(data.filePath);
				var oldLi = 
						"<li>"
						+ "	<div class=\"pic1\">"
						+ "		<img src=\"" + rootPath + "/statics/images/upload_pic1.png\" />"
						+ "		<input id=\""+id+"\" type=\"file\" name=\"uploadImage\" onchange=\"ajaxFileUpload(this,'"+tag+"')\" />"
						+ "</div>" 
						+ "</li>";
				var li = "<li>" 
						+ " <div class=\"pic1\">" 
						+ "		<a rel='"+tag+"' href='" + imgRootURL + data.filePath + "'>" 
						+ "			<img src=\"" + imgRootURL + data.filePath + "?x-oss-process=image/resize,h_60/format,png\" />"
						+ "		</a>"
						+ "		<a href=\"javascript:void(0)\" class=\"icon_close\"></a>"
						+ " </div>" 
						+ "</li>";
				image_container.empty().append(li);
				image_container.find("a[class='icon_close']").each(function() {
					//左上角删除按钮点击事件
					$(this).click(function() {
						$(this).closest("li").remove();
						image_container.append(oldLi);
						image_container.next().val("");
					});
				});
				//加载大图查看
				initFancyBoxImg(tag);
			} else {
				msg("上传失败");
			}
		},
		error : function(data, status, e) {
			layer.close(index);
			msg("系统异常");
		}
	});
}
/**
 * 关闭图片 
 */ 
function clearImage(_this, tag) {
	var id = "upload_image";
	var oldLi = 
		"<li>"
		+ "	<div class=\"pic1\">"
		+ "		<img src=\"" + rootPath + "/statics/images/upload_pic1.png\" />"
		+ "		<input id=\""+id+"\" type=\"file\" name=\"upload_image\" onchange=\"ajaxFileUpload(this,'"+tag+"')\" />"
		+ "</div>" 
		+ "</li>";
	var image_container = $(_this).parents(".image_container");
	image_container.empty().append(oldLi);
	image_container.next().val("");
}
//************************************************上传图片所需的函数END*********************************************************//

//检查图片格式及大小
function imageCheck(obj){
	var id = $(obj).attr("id");
	var filePath = $("#"+id).val();
	//检查后缀
	var ext = filePath.substring(filePath.lastIndexOf("."), filePath.length).toUpperCase();
	if (ext != ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG") {
		layer.msg('只能上传图片',{time:500});
		return false;
	}
	var file_size = 0;
	if (false || !!document.documentMode) {
		var img = new Image();
		img.src = filepath;
		while (true) {
			if (img.fileSize > 0) {
				if (img.fileSize > 5 * 1024 * 1024) {
					layer.msg('图片不能大于5MB',{time:1000});
					return false;
				}
				break;
			}
		}
	} else {
		file_size = obj.files[0].size;
		var size = file_size / 1024;
		if (size > 5120) {
			layer.msg('图片不能大于5MB',{time:1000});
			return false;
		}
	}
	return true;
}

